package com.tina.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tina.entity.Orders;
import com.tina.exception.CustomerException;

import java.util.List;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author Tina
 * @since 2020-10-26
 */
public interface IOrdersService extends IService<Orders> {
    /**
     * 新增订单
     *
     * @param orders
     * @return
     */
    Integer insertOrders(Orders orders);

    /**
     * 编辑订单
     *
     * @param orders
     * @return
     */
    Integer editOrders(Orders orders);

    /**
     * 查询订单
     *
     * @param orders
     * @return
     */
    List<Orders> selectOrders(Orders orders);

    /**
     * 查询订单数量
     */
    Integer ordersCountNum();

    /**
     * 通过订单ID查询订单
     *
     * @param orderId
     * @return
     */
    Orders selectOrdersById(String orderId);

    /**
     * 下单
     *
     * @param orders
     * @return
     */
    String confirmOrder(Orders orders);

    /**
     * 二维码生成预订单
     *
     * @param orders
     * @return
     */
    String orderFrom(Orders orders);

    /**
     * 支付宝二维码支付
     *
     * @param orders
     * @return
     */
    String codePay(Orders orders);

    /**
     * 支付
     *
     * @param orderId
     */
    String pay(String orderId);

    /**
     * 校验证订单是否有效果时间内
     *
     * @param orderId
     * @return
     */
    void checkOrderTime(String orderId);

    /**
     * 校验当前订单
     *
     * @param orderId
     */
    public void checkOrder(String orderId);

    /**
     * 校验当前订单是否支付
     *
     * @return
     */
    public void checkOrderPay(String orderId) throws CustomerException;
}
